#!/bin/bash

# 进入项目目录
cd "$(dirname "$0")"

# 检查npm和node是否安装
if ! command -v npm &> /dev/null; then
    echo "错误: npm未安装，请先安装Node.js环境"
    exit 1
fi

# 显示Node.js版本
echo "Node.js版本: $(node -v)"
echo "NPM版本: $(npm -v)"

# 创建日志目录（如果不存在）
mkdir -p logs

# 安装依赖
echo "正在安装项目依赖..."
npm install
if [ $? -ne 0 ]; then
    echo "错误: 依赖安装失败，请检查网络连接或package.json文件"
    exit 1
fi
echo "依赖安装成功!"

# 检查环境文件是否存在
if [ ! -f ".env" ]; then
    echo "警告: .env文件不存在，将使用默认配置"
fi

# 使用PM2启动应用
if command -v pm2 &> /dev/null; then
    echo "使用PM2启动应用..."
    pm2 stop mydy-api 2>/dev/null  # 尝试停止可能已运行的实例
    pm2 start ecosystem.config.js
    
    # 检查启动状态
    if pm2 show mydy-api | grep -q "online"; then
        echo "✅ MyDy后端服务启动成功!"
        echo "应用状态: $(pm2 status mydy-api | grep mydy-api)"
        echo "应用地址: http://$(hostname -I | awk '{print $1}'):3000"
    else
        echo "❌ 应用启动失败，请检查日志文件：logs/error.log"
    fi
else
    echo "PM2未安装，使用node直接启动..."
    echo "正在安装PM2..."
    npm install -g pm2
    if [ $? -ne 0 ]; then
        echo "PM2安装失败，使用node直接启动..."
        nohup node app.js > logs/output.log 2>&1 &
        echo "MyDy后端服务已启动! PID: $!"
        echo "应用地址: http://$(hostname -I | awk '{print $1}'):3000"
    else
        echo "PM2安装成功，重新运行启动脚本..."
        exec "$0"
    fi
fi

echo "============================="
echo "🔹 管理应用命令:"
echo "  - 查看状态: pm2 status mydy-api"
echo "  - 查看日志: pm2 logs mydy-api"
echo "  - 停止服务: pm2 stop mydy-api"
echo "  - 重启服务: pm2 restart mydy-api"
echo "============================="
echo "🔹 访问API: http://$(hostname -I | awk '{print $1}'):3000"
echo "=============================" 